home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 037a / exec31.zip / EXTEST.C < prev    next >
C/C++ Source or Header  |  1991-08-18  |  3KB  |  138 lines

  1. /*
  2.    --- Version 3.1 91-08-17 23:06 ---
  3.  
  4.    EXTEST.C: EXEC function with memory swap - Test program.
  5.  
  6.    Public domain software by
  7.  
  8.         Thomas Wagner
  9.         Ferrari electronic GmbH
  10.         Beusselstrasse 27
  11.         D-1000 Berlin 21
  12.         Germany
  13. */
  14.  
  15.  
  16. #include "compat.h"
  17. #include "exec.h"
  18.  
  19. /*>e*/
  20. #define ENGLISH 1
  21. /*<*/
  22.  
  23. #ifdef ENGLISH
  24. int help (void)
  25. {
  26.    puts ("Usage: EXTEST [options]");
  27.    puts ("Options:");
  28.    puts ("     -E    do not use EMS  for swapping");
  29.    puts ("     -X    do not use XMS  for swapping");
  30.    puts ("     -F    do not use File for swapping");
  31.    puts ("     -T    Terminate after EXEC (no swap)");
  32.    puts ("     -N    do Not swap");
  33.    puts ("     -C    do not Copy environment");
  34.    puts ("     -H    Hide swapfile");
  35.    puts ("     -Z    Try XMS first, then EMS");
  36.  
  37.    return 1;
  38. }
  39. #else
  40. int help (void)
  41. {
  42.    puts ("Benutzung: EXTEST [Optionen]");
  43.    puts ("Optionen:");
  44.    puts ("     -E    bei Auslagern kein EMS benutzen");
  45.    puts ("     -X    bei Auslagern kein XMS benutzen");
  46.    puts ("     -F    bei Auslagern keine Datei benutzen");
  47.    puts ("     -T    Terminieren nach EXEC (keine Auslagerung)");
  48.    puts ("     -N    Nicht Auslagern");
  49.    puts ("     -C    Umgebungsvariablen nicht kopieren");
  50.    puts ("     -H    Auslagerungsdatei 'hidden'");
  51.    puts ("     -Z    Zuerst XMS versuchen, dann EMS");
  52.  
  53.    return 1;
  54. }
  55. #endif
  56.  
  57.  
  58. int main (int argc, char **argv)
  59. {
  60.    static char fn [255], par [130];
  61.    char *com;
  62.    int i;
  63.    char far *x;
  64.    char far *y;
  65.    int method;
  66.    unsigned needed;
  67.    char **env;
  68.  
  69.    method = USE_ALL;
  70.    needed = 0xffff;
  71.    env = environ;
  72.  
  73.    for (i = 1; i < argc; i++)
  74.       {
  75.       if (argv [i][0] != '-' && argv [i][0] != '/')
  76.          return help ();
  77.       com = &argv [i][1];
  78.       do
  79.          {
  80.          switch (toupper (*com))
  81.             {
  82.             case 'E':   method &= ~USE_EMS; break;
  83.             case 'X':   method &= ~USE_XMS; break;
  84.             case 'F':   method &= ~USE_FILE; break;
  85.             case 'T':   method = 0; break;
  86.             case 'N':   needed = 0; break;
  87.             case 'C':   env = NULL; break;
  88.             case 'H':   method |= HIDE_FILE; break;
  89.             case 'Z':   method |= XMS_FIRST; break;
  90.             case '-':   break;
  91.             case '/':   break;
  92.             default:    return help ();
  93.             }
  94.          com++;
  95.          } while (*com);
  96.       }
  97.  
  98.    x = (char far *)farmalloc (64L * 1024L);
  99.    y = (char far *)farmalloc (64L * 1024L);
  100.  
  101. #ifdef ENGLISH
  102.    putenv ("XYZ=This is an environment string for the spawned process");
  103. #else
  104.    putenv ("XYZ=Dies ist eine Umgebungsvariable für den aufgerufenen Prozeß");
  105. #endif
  106.  
  107.    while (1)
  108.       {
  109. #ifdef ENGLISH
  110.       printf ("\nEXEC filename,params ('.' to exit): ");
  111. #else
  112.       printf ("\nDateiname,Parameter ('.' beendet): ");
  113. #endif
  114.       gets (fn);
  115.  
  116.       if (fn [0] == '.')
  117.          return 0;
  118.  
  119.       com = strchr (fn, ',');
  120.       if (com != NULL)
  121.          {
  122.          strcpy (par, &com [1]);
  123.          *com = 0;
  124.          }
  125.       else
  126.          par [0] = 0;
  127.  
  128.       i = do_exec (fn, par, method, needed, env);
  129.  
  130. #ifdef ENGLISH
  131.       printf ("\nDO_EXEC returns %04x\n", i);
  132. #else
  133.       printf ("\nDO_EXEC liefert %04x\n", i);
  134. #endif
  135.       }
  136. }
  137.  
  138.